package toOffer;

/**
 * @author YuanAo
 * @date 2024/6/25 14:26
 * @description 训练计划I
 */

/**
 * 题目：教练使用整数数组 actions 记录一系列核心肌群训练项目编号。为增强训练趣味性，
 * 需要将所有奇数编号训练项目调整至偶数编号训练项目之前。请将调整后的训练项目编号以 数组 形式返回。
 * <p>
 * 示例 1：
 * <p>
 * 输入：actions = [1,2,3,4,5]
 * 输出：[1,3,5,2,4]
 * 解释：为正确答案之一
 */
public class LCR139 {
    public static void main(String[] args) {
        int[] actions = {1, 2, 3, 4, 5};
        for (int i : trainingPlan(actions)) {
            System.out.print(i + " ");
        }
    }

    public static int[] trainingPlan(int[] actions) {
        int left = 0;
        int right = actions.length - 1;
        int temp;

        while (left < right){
            if (actions[left] % 2 == 0 && actions[right] % 2 != 0){
                // 左偶右奇-换位置
                temp = actions[right];
                actions[right] = actions[left];
                actions[left] = temp;
                right--;
                left++;
            }else if (actions[left] % 2 != 0 && actions[right] % 2 != 0){
                // 左奇右奇-左加右不变
                left++;
            }else if (actions[left] % 2 == 0 && actions[right] % 2 == 0){
                // 左偶右偶-左不变右减
                right--;
            }else if (actions[left] % 2 != 0 && actions[right] % 2 == 0){
                // 左奇右偶-左加右减
                right--;
                left++;
            }
        }

        return actions;
    }
}
